[Dúvida] endereçar string dentro de .txt [RESOLVIDO]

1. [Dúvida] endereçar string dentro de .txt [RESOLVIDO]

Lincoln Oliveira de Souza
lincolnsol

(usa Fedora)

Enviado em 14/11/2011 - 01:45h

Boa noite colegas do Viva o Linux.

Estou montando um script onde ele guardará em uma variável(var0) o valor de um caractere que esta em texto, em uma determinada linha e posição.

A string que tenho q salvar com var0 é sempre o segundo carácter da 5 linha do "texto" em questão.

eu tentei usar usar o seguinte comando

var0=`cat $arquivo | sed '5!d' | cut -d" " -f2`

depois tentei assim:

var0=`cat $arquivo | sed '5d' | cut -d" " -f2`

porem como resposta nos dois casos eu recebo uma saída um emaranhado contendo doas as partes do arquivo

então tentei fazer por partes e mostras apenas a 5° linha do arquivo, usei:

var0=`cat $arquivo | sed '5!d'`
var0=`cat $arquivo | sed '5d'`

com esses comando tive como saida toda a primeira coluna do arquivo, por favor o que estou fazendo de errado ?


  


2. MELHOR RESPOSTA

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 14/11/2011 - 02:06h

Aqui de certo, veja com calma o conteúdo do arquivo, execute os comandos sem colocar na variável, passo-a-passo no terminal, isso ajuda a você ver o que está acontecendo.

fiz um teste assim:
arquivo:

linha1
linha2
linha3
linha4
linha5 quero_isso

cat arquivo | sed '5!d'
resultado:
linha5 quero_isso

agora
cat arquivo | sed '5!d' | cut -d' ' -f2
resultado:
quero_isso
basta colocar na variável:
VAR0=$(cat arquivo | sed '5!d' | cut -d' ' -f2)

e pronto, VAR0 tem o valor 'quero_isso'






3. Re: [Dúvida] endereçar string dentro de .txt [RESOLVIDO]

Lincoln Oliveira de Souza
lincolnsol

(usa Fedora)

Enviado em 14/11/2011 - 02:18h

Muito obrigado rai3mb

deposi que eu substitui
var0=`cat $arquivo | sed '5!d' | cut -d" " -f2`

por
var0=$(cat arquivo | sed '5!d' | cut -d' ' -f2)

passou a funcionar, eu nunca usei var=$() no lugar de var=``, na verdade eu nem sabia que era possível. E agora me ocorreu uma duvida, qual a diferença entre var=$() e lugar de var=`` ?


4. Re: [Dúvida] endereçar string dentro de .txt [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 14/11/2011 - 02:46h

O `` é usado a mais tempo, depois surgiu o $(), que serve para o mesmo propósito.

Não há diferença à primeira vista, o grande problema que vejo é de visual

usar o `` no meio de um código é complicado, pois vários erros podem ocorrer, fica difícil visualizar esses caracteres no meio do código, já um $() é bem mais visível.

Um problema que pode diferenciar o ``do $(), citado por Aurélio Marinho Jargas em seu livro Programação em Shell Profissional é no aninhamento de comandos, veja:

echo `echo \`echo \\\`echo exemplo\\\`\``
fica bem melhor usando:
echo $(echo $(echo $(echo exemplo) ) )

No caso do `` você tem que ficar escapando os subshells, no caso do $() não precisa, além de ser mais fácil visualizar


5. Re: [Dúvida] endereçar string dentro de .txt [RESOLVIDO]

Lincoln Oliveira de Souza
lincolnsol

(usa Fedora)

Enviado em 14/11/2011 - 04:17h

Muito obrigado rai3mb

tirou todas as minhas duvidas, e ficou funcionando beleza o script

vou editar o titulo e incluir [resolvido]






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts